package com.chaopei.reg;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @Author Corday 天涯
 * @Date 2022/3/9 15:59
 */
public class MyRegx {
    public static void playReg() {
        /**
         * 1.座机号的正则
         * tel:0371-61234567",区号是0开头,第二位非0,其它部分任意;
         * 电话号至少以5开头,其它任意,长度为8位
         */
        String telReg = "tel:[0][1-9][0-9]{2}-[5-9][0-9]{7}";
        String tel = "tel:0371-66782651";
        String info = tel.matches(telReg) ? tel : "电话号格式不对!";
        System.out.println("----电话号正则----");
        System.out.println(info);
        //2.电子䢺件地址正则
        System.out.println("--------电邮正则------");
        String emReg="\\w+@\\w+\\.\\w{2,3}(\\.\\w{2})?";
        String em1="chaopei@sina.com";
        String em2="chaopei123@sina.com.cn";
        System.out.println("em1:"+em1.matches(emReg));
        System.out.println("em1:"+em2.matches(emReg));
        //3.复杂密码的正则
        //复杂密码的正则,必须同时有英文大小写及数字,其它字符可选,长度4-
        //?:pattern,匹配pattern但不获取匹配结果
        //?=pattern,正向预查,在任何匹配pattern的字符串开始处查找
        //(?=.*[a-z])获取匹配结果
        System.out.println("-----复杂密码正则----");
        //任意字符串后有小写字母,大写字母与数字
        //也可以(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9]).{4,}
        String passReg="(?:(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])).{3,}";
        //String pass ="4a3Abcde";
        String pass ="3aAggfdsa3s";
        String tips=pass.matches(passReg)?"密码正确":"密码不正确";
        System.out.println(tips);
//        正则表达式更多检验
        String preg="([0-9])([a-z]).{3,}";
        //String ms="9abcde";//前边必须是0-9中间为小写,后边有三位
        String ms="9abcdef";
        System.out.println("检验:"+ms.matches(preg));
    }
}

//     测试正则
class TestReg {
    public static void main(String[] args) {
        MyRegx.playReg();
    }
}

